package com.intretech.umsin.datasource.codemapping.service;


import com.intretech.umsin.datasource.codemapping.entity.CodeNameMap;

/**
 * @version V1.0
 * @InterfaceName: CodeMappingDBService
 * @Description: CodeMappingDBService 对应提供的服务接口
 * @author: 李启联
 * @date: 2020-05-25 11:20
 * @Copyright: Copyright (c) 2020
 */
public interface CodeMappingDBService {

    /**
     * 得到目标映射对象 Code-Name 码名信息
     * @param targetClassKeyProperty 名"在需要查找目标对象所对应的键(Key)属性名
     * @param targetClassFieldProperty "名"在需要查找目标对象所对应的字段属性名
     * @param targetClass "名"需要查找目标对象类型
     * @param targetClassName "名"需要查找目标对象全类名
     * @param fieldCodePropertyVal "码"在类中对应的字段对应的值,为减轻数据库压力(在方法返回列表对象时，一次性返回)
     * @return
     */
    CodeNameMap getCodeNameMapFromDB(String targetClassKeyProperty, String targetClassFieldProperty, Class targetClass, String targetClassName, Object fieldCodePropertyVal);

    /**
     * 得到目标映射对象
     * @param targetClass "名"需要查找目标对象类型
     * @param id 目标映射对象ID
     * @return
     */
    Object getTargetObject(Class targetClass,String id);

    Object getTargetObjectV2(Class targetClass,String targetClassKeyProperty,String targetVal);

}